package club.xyes.zkh.ecommerce.service;

import club.xyes.zkh.ecommerce.commons.entity.Shop;
import club.xyes.zkh.ecommerce.commons.entity.ShopImage;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * Create by 郭文梁 2019/4/17 0017 09:30
 * ShopImageService
 * 商铺图片相关业务行为定义
 *
 * @author 郭文梁
 * @data 2019/4/17 0017
 */
public interface ShopImageService extends BaseService<ShopImage> {
    /**
     * 创建新的商铺图片
     *
     * @param shop      商铺对象
     * @param imageFile 图片文件
     * @return ShopImage
     * @throws IOException IOE
     */
    ShopImage newImage(Shop shop, MultipartFile imageFile) throws IOException;

    /**
     * 通过商铺ID查找
     *
     * @param shopId 商铺ID
     * @return ShopImage list
     */
    List<ShopImage> findByShopId(Integer shopId);

    /**
     * 重设商铺轮播图
     *
     * @param shop  商铺对象
     * @param files 图片文件
     * @return 更新结果
     * @throws IOException IO异常
     */
    List<ShopImage> resetShopImage(Shop shop, List<MultipartFile> files) throws IOException;

    /**
     * 替换轮播图片
     *
     * @param image     image对象
     * @param imageFile 文件对象
     * @return GR
     * @throws IOException IO异常
     */
    ShopImage replace(ShopImage image, MultipartFile imageFile) throws IOException;

    /**
     * 通过商铺ID删除商铺轮播图片
     *
     * @param shopId 商铺ID
     * @return 删除的数量
     */
    int deleteByShopId(Integer shopId);
}
